package modelo.policiales;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;

import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;



public class HistorialDePolicia {

	private Policia policia;
	private int arrestos;
	
	public HistorialDePolicia (Policia unPolicia){
		
		this.policia = unPolicia;
		this.arrestos = 0;
	}
	
	private HistorialDePolicia(Policia unPolicia, int cantidadDeArrestos){
		
		this.policia = unPolicia;
		this.arrestos = cantidadDeArrestos;
		
	}
	
	public void agregarArresto(){
		
		arrestos += 1;
	}
	
	public Policia obtenerPolicia(){
		
		return this.policia;
	}

	public int obtenerArrestos() {
		
		return arrestos;
	}
	
	public String obtenerNombre(){
		
		return this.policia.getNombre();
	}
	

	public Node serializar(Document doc) throws DOMException, ParserConfigurationException, TransformerException {
		
		Element elementoHistorial = doc.createElement("HistorialDePolicia");
		elementoHistorial.setAttribute("CantidadDeArrestos", Integer.toString(this.arrestos));
		elementoHistorial.appendChild(this.policia.serializar(doc));
		return elementoHistorial;
	}

	public static HistorialDePolicia hidratar(Element elementoHistorial) throws Exception {
		
		
		int cantidadDeArrestos = Integer.parseInt( ((Element)elementoHistorial).getAttribute("CantidadDeArrestos") );
		Element elementoPolicia = (Element) elementoHistorial.getElementsByTagName("Policia").item(0);
		Policia policia = Policia.hidratar ( elementoPolicia );
		
		HistorialDePolicia historialNuevo = new HistorialDePolicia ( policia, cantidadDeArrestos );
		
		return historialNuevo;
	}
	
}
